\subsection{Comprar}

\begin{description}
  \item[Actor:] cliente.
  \item[Precondiciones:] cliente logeado, que exista carrito con productos.
  \item[Descripción:] el cliente está comprando, ha añadido los productos.
  deseados al carrito y pulsa sobre el botón comprar.
\end{description}

\subsubsection{Escenario normal}

\begin{enumerate}
  \item El cliente pincha en el botón de «comprar» en la web (página del
  carrito). Sabemos que el carrito comprueba las existencias de modo que
  confien que todos los datos del carrito estén bien.
  \item La página web pide al carrito los datos de la compra y los muestra.
  \item El cliente comprueba que los datos son correctos y pulsa sobre continuar.
  \item La web muestra opciones de envío.
  \item El cliente selecciona opción de envío y pulsa sobre continuar.
  \item La web muestra el importe del pedido incluidos los gastos de envío.
  \item El cliente comprueba los datos y pulsa sobre continuar.
  \item La web pide al controlador los datos del cliente y los muestra.
  \item El controlador pide los datos del cliente al agente.
  \item El agente recupera los datos del cliente de la base de datos y se los
  pasa al controlador.
  \item El controlador pasa los datos del cliente a la web.
  \item La web muestra los datos al cliente.
  \item El cliente comprueba sus datos (nombre dirección de envío, etc) y pulsa
  sobre continuar.
  \item La web muestra opciones de pago.
  \item El cliente selecciona forma de pago y pulsa sobre continuar.
  \item La web solicita al controlador procesar el pago (otro caso de estudio).
  \item El controlador pasa a la web los datos del proceso de pago.
  \item La web muestra los datos del proceso de pago.
  \item El cliente pulsa sobre finalizar.
\end{enumerate}

\begin{description}
  \item[Postcondiciones:] Pago procesado y pedido almacenado en la base de datos.
\end{description}

\subsubsection{Escenario alternativo 1: el cliente no confirma los datos del carrito}

\begin{enumerate}
  \setcounter{enumi}{1}
  \item El cliente no está conforme con los datos del carrito y pulsa «atrás»
  \item La web vuelve al carrito.
\end{enumerate}

\begin{description}
  \item[Postcondición:] ninguna modificación.
\end{description}

\subsubsection{Escenario alternativos 2: el cliente no confirma la opción de envío}

\begin{enumerate}
  \setcounter{enumi}{4}
  \item El cliente no está conforme con las opciones de envío y pulsa «atrás»
  \item La web vuelve la página anterior.
\end{enumerate}

\begin{description}
  \item[Postcondición:] ninguna modificación.
\end{description}

\subsubsection{Escenario alternativo 3: el cliente no confirma los gastos envío}

\begin{enumerate}
  \setcounter{enumi}{6}
  \item El cliente no está conforme con los gastos y pulsa «atrás»
  \item La web vuelve la página anterior.
\end{enumerate}

\begin{description}
  \item[Postcondición:] ninguna modificación.
\end{description}

\subsubsection{Escenario alternativo 4: el cliente no confirma sus datos registrados}

\begin{enumerate}
  \setcounter{enumi}{6}
  \item El cliente no está conforme con los datos registrados y pulsa «modificar»
  \item La web solicita al controlador modificar datos usuario (otro caso de
  estudio).
\end{enumerate}

\begin{description}
  \item[Postcondición:] modificar los datos del usuario
\end{description}
